﻿using Digitalmes.Domain.ValueObjects;

namespace Digitalmes.Domain.Entities.Mes.Productions;

/// <summary>
/// 产品存档过程数据。
/// </summary>
[SugarTable("prod_archive_data")]
public sealed class ProdArchiveData : EntityBase
{
    /// <summary>
    /// 产品数据存档信息 Id。
    /// </summary>
    [SugarColumn(ColumnDescription = "产品存档信息Id")]
    public long ArchiveId { get; set; }

    /// <summary>
    /// 存档主数据
    /// </summary>
    [NotNull]
    [Navigate(NavigateType.OneToOne, nameof(ArchiveId))]
    public ProdArchive? Archive { get; set; }

    /// <summary>
    /// 工序类型编号，多个以逗号分隔。
    /// </summary>
    public string? ProcTypeCode { get; set; }

    /// <summary>
    /// 工序类型名称，多个以逗号分隔。
    /// </summary>
    public string? ProcTypeName { get; set; }

    /// <summary>
    /// 数据集合
    /// </summary>
    /// <remarks>
    /// JSON 存储，MySQL 允许的最大尺寸为 max_allowed_packet，默认为 4194304byte，即 4MB，可以使用 "select@@max_allowed_packet;" 命令查看；
    /// SQL Server 2016+ 中数据类型为 nvarchar([len])，默认最大长度为 nvarchar(max)。
    /// </remarks>
    [NotNull]
    [SugarColumn(IsJson = true)]
    public List<ArchiveDataItemVo>? Data { get; set; }
}
